#ifndef LW_NEW_H
#define LW_NEW_H

#define KLASS(_klass_info_)	((klass_info*)_klass_info_)

typedef struct _klass_info klass_info;
struct _klass_info
{
	void* init; /*initialize function*/
	klass_info* super;	/*object's klass's super klass*/
	char* name; /*object's klass's name*/
	size_t size; /*object's size*/
	void* ctor; /*object's constructor*/
	void* dtor; /*object's destructor*/
};

klass_info* klass_of(void* self);
size_t size_of(void* self);
void* lw_new(void* klass);
void lw_delete(void* self);
#endif
